MARCAJE
GENERALIZADO

“Las etiquetas de marcaje de un documento describen su estructura” (Charles Goldfarb)



El Lenguaje SGML

SGML son las siglas de “Standard Generalized Markup Language” (Lenguaje Estándar de Marcaje Generalizado). El concepto de “marcaje” o “señalamiento” se refiere a la asignación de atributos a las diferentes partes de un documento. Un atributo es un par “nombre-valor”, en donde “nombre” es el nombre del atributo y “valor”, el valor asociado al atributo.

SGML es un lenguaje genérico que nació para describir la estructura lógica del contenido de los documentos, pero su vocación y proyección es universal, más allá del mundo de la documentación. En efecto, aunque las aplicaciones actuales de este estándar se han enfocado hacia una sola forma de estructurar la información (el contenido de los documentos), el lenguaje es genérico, por lo que es potencialmente aplicable también a otras estructuras de información, incluidas las bases de datos. Actualmente SGML se ha liberado de los conceptos orientados a documento, de tal manera que es aplicable a la descripción de cualquier estructura de información, de forma conceptual e independiente de la aplicación o herramienta utilizada.

SGML es realmente un metalenguaje, pues es un lenguaje para definir lenguajes de marcaje específicos. Un lenguaje de marcaje específico tiene su vocabulario específico y una sintaxis que define las relaciones entre sus elementos.


La estructura lógica de un documento

La descripción de la estructura lógica de un documento se basa en la identificación de los tipos de elementos componentes (capítulos, secciones, párrafos, listas, etc.), sus atributos, así como las relaciones entre estos elementos. Esta descripción se realiza de forma totalmente independiente de los diferentes procesos que pueden realizarse con el documento: Es lo que se denomina “Gestión de la Información Abierta” (OIM, en sus siglas en inglés), es decir, que la información esté disponible para todo tipo de aplicaciones.

La identificación de los diferentes elementos de un documento se realiza señalando o marcando dichos elementos mediante etiquetas (tags). Estas etiquetas tienen las siguientes características:
Marcaje generalizado vs. marcaje específico

El marcaje específico consiste en insertar, dentro del texto de un documento, controles relativos a un proceso determinado. Por ejemplo en el caso de un proceso de formateo del documento (presentación del texto): El marcaje específico, llamado también procedural, tiene las desventajas siguientes: En cambio, con el marcaje generalizado, se consigue:
Defición de tipos de documentos

En SGML, la definición de un tipo de documento se realiza mediante una DTD (Document Type Definition, Definición de Tipo de Documento), que especifica las restricciones estructurales que se imponen a los documentos de un cierto tipo. Existen DTDs definidas para aplicaciones militares, en la industria aeronáutica, en grandes corporaciones, etc.

El lenguaje de las DTDs se realiza mediante una variante de la notación de las expresiones regulares [ver Aplicaciones – Lingüística – Gramáticas Formales y Expresiones Regulares], en la que se utilizan los símbolos siguientes:

SímboloSignificado
&Unión de elementos de un conjunto (elementos en cualquier orden)
,Separación de elementos de una secuencia
(  )Agrupación de elementos
|Elementos alternativos
?Elemento opcional
*Repetición de un elemento cero o más veces
+Repetición de un elemento una o más veces


Limitaciones de SGML

Se ha dicho que SGML camina entre el humanismo y la ciencia. En efecto, el sistema de codificación de los documentos es muy intuitiva y permite su fácil comprensión, todo ello debido a que está basado en el concepto de atributo, que posee un alto nivel semántico. Pero SGML adolece de muchas limitaciones:
El Lenguaje XML

XML (eXtended Markup Language, Lenguaje de Marcaje Extendido) es un subconjunto de SGML, un SGML simplificado elaborado en 1998 por el W3C (WWW Consortium), para uso en Internet y en todo tipo de aplicaciones en general.

SGML es más potente y flexible que XML. En SGML es posible hasta cambiar la sintaxis de los paréntesis angulares. Pero SGML es más complejo y más difícil de implementar que XML. Actualmente SGML está siendo sustituido por XML, por ser éste más sencillo, porque se integra mejor en la Web actual y por ser una de las tecnologías elegidas para la futura Web Semántica [ver Aplicaciones – Informática – Web Semántica].


Ejemplo

Una estructura jerárquica de información especificada mediante XML es, por ejemplo la siguiente:

<Empleado Id/2126>
   <DatosPersonales>
     <Nombre>José Pons</Nombre>
     <AñoNac>1936</AñoNac>
     <LugarNac>Cartagena</LugarNac>
   </DatosPersonales>
   <DatosAcadémicos>
     <Título>Físico</Titulo>
     <AñoTitulo>1960</AñoTitulo>
   </DatosAcademicos>
</Empleado>


Limitaciones de XML
XML Schema (XMLS)

XML Schema es un lenguaje orientado a definir tipos o estructuras de documentos XML, es decir, los documentos válidos sintácticamente. Tiene la ventaja de que su sintaxis es también XML (al contrario que las DTDs, que no tienen notación SGML).

Limitaciones:
La universalidad de XML

XML se está aplicando actualmente para la especificación de todo tipo de estructuras de información. Se trata de una línea al menos discutible, pues pretender utilizar XML “para todo” conduce a una incoherencia similar a pretender en POO (Programación Orientada a Objetos) que “todo es un objeto”. Por ejemplo, En el primer caso se comete un error semántico (de interpretación) y el segundo caso un error de representación, al adoptarse una complejidad innecesaria.

Hay que tener en cuenta que primero es la semántica y luego la sintaxis, que debe ser lo más sencilla, legible y adecuada posible y que evoque la semántica asociada.


MENTAL como Lenguaje de Marcaje Generalizado

MENTAL proporciona un lenguaje completo para la filosofía del marcaje generalizado, haciendo innecesario utilizar un lenguaje especial para este campo. Se puede aplicar a la especificación de todo tipo de estructuras de información, superando las limitaciones de SGML (y de su versión simplificada XML).

El marcaje con MENTAL se realiza fundamentalmente con la primitiva “/” (particularización):
Ejemplo

En MENTAL, el ejemplo mencionado anteriorimente se especificaría así:

(Empleado/2126
   DatosPersonales/
     (Nombre/"José Pons"
     AñoNac/1936
     LugarNac/Cartagena)
   DatosAcadémicos/
     (Título/Físico
     AñoTítulo/1959)
)


Esta codificación se ha hecho de manera jerárquica para su mayor legibilidad, pero evidentemente se pueden realizar de forma totalmente lineal.

En este caso, los nombres de los atributos no se repiten como en XML.


Especificación de tipos de estructuras de marcaje

Se realiza mediante expresiones genéricas parametrizadas. Por ejemplo,

⟨Empleado(id nombre añonac lugarnac título añotítulo) = (Empleado/id
   DatosPersonales/
     (Nombre/nombre
     AñoNac/añonac
     LugarNac/lugarnac)
   DatosAcadémicos/
     (Título/título
     AñoTítulo/añotítulo)
)⟩


Uso, por ejemplo: Si se desean restringir los valores asociados a los parámetros, habría que incluir condiciones. Por ejemplo, la longitud, el tipo (numérico, alfanumérico, fecha, etc.), rangos de valores, etc.


Utilización de sintaxis XML

Podemos, si lo deseamos, utilizar la sintaxis XML. Para ello, podemos utilizar la definición siguiente: Como los paréntesis angulares y la barra tienen significado en MENTAL, habría que diferenciarlos mediante, por ejemplo, otro color. Se ha utilizado la sustitución potencial, por lo que se está indicando representación. Por ejemplo, la sentencia HTML representa en MENTAL a la expresión
Ventajas de MENTAL como lenguaje de marcaje generalizado
Adenda

Origen de SGML

Charles F. Goldfarb (junto con Edward Mosher and Raymond Lorie), inventaron GML (que son también las iniciales de sus apellidos), el precursor de SGML, en 1969, en IBM, inventando el concepto de “marcaje” como un medio para estructurar y compartir el contenido de un documento entre diferentes aplicaciones. En 1974 nació SGML como evolución de GML, aunque tuvo que transcurrir más de una década hasta que se desarrolló totalmente y se estandarizó. El lenguaje SGML es un estándar internacional desde 1986 (ISO 8879).

El estándar no define las etiquetas, aunque un conjunto básico aparece como anexo al ISO 8879, en el que aparecen ejemplos de aplicación del lenguaje. Hoy día, SGML, aunque es un lenguaje ampliamente aceptado y difundido internacionalmente para el intercambio de información, se ha sustituido en la práctica por XML, por ser más sencillo.

Algunos desarrollos en SGML son: Una descripción completa de SGML puede encontrarse en [Goldfarb, 1991], escrito por el principal inspirador de este lenguaje. Un enfoque más práctico lo proporciona [Herwijnen, 1994]. [Wright, 1992] explica SGML como técnica para liberar la información.


Bibliografía